package com.csap.framework.boot.apidoc.autoconfigure;

import org.springframework.context.annotation.Import;
import org.springframework.core.annotation.AliasFor;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author yangchengfu
 * @description 启用多配置文档注解
 * @dataTime 2020年-09月-22日 13:17:00
 **/
@Documented
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
@Import(ApidocImportBeanDefinitionRegistrar.class)
public @interface EnableApidoc {

    @AliasFor("apiPackages")
    String[] value() default {};

    /**
     * API包扫描
     *
     * @return
     */
    @AliasFor("value")
    String[] apiPackages() default {};

    /**
     * 接口扫描包
     *
     * @return
     */
    String[] enumPackages() default {};

    /**
     * 接口层扫描包
     *
     * @return
     */
    String[] modelPackages() default {};

    /**
     * 是否扫描子包
     *
     * @return
     */
    boolean showChildPackageFlag() default true;
}
